//! # 性能监控配置管理
//! 
//! 本模块提供了RustCloud框架的性能监控配置管理实现。

use std::time::Duration;

/// 性能监控器配置
#[derive(Debug, Clone)]
pub struct PerformanceMonitorConfig {
    /// 采集间隔
    pub collection_interval: Duration,
    /// 历史数据保留时间
    pub retention_period: Duration,
    /// 是否启用详细监控
    pub detailed_monitoring: bool,
    /// 性能阈值配置
    pub thresholds: PerformanceThresholds,
}

/// 性能阈值配置
#[derive(Debug, Clone)]
pub struct PerformanceThresholds {
    /// CPU使用率警告阈值
    pub cpu_warning_threshold: f64,
    /// CPU使用率严重阈值
    pub cpu_critical_threshold: f64,
    /// 内存使用率警告阈值
    pub memory_warning_threshold: f64,
    /// 内存使用率严重阈值
    pub memory_critical_threshold: f64,
    /// 响应时间警告阈值（毫秒）
    pub response_time_warning_ms: u64,
    /// 响应时间严重阈值（毫秒）
    pub response_time_critical_ms: u64,
}

impl Default for PerformanceMonitorConfig {
    fn default() -> Self {
        Self {
            collection_interval: Duration::from_secs(30),
            retention_period: Duration::from_secs(3600), // 1小时
            detailed_monitoring: true,
            thresholds: PerformanceThresholds::default(),
        }
    }
}

impl Default for PerformanceThresholds {
    fn default() -> Self {
        Self {
            cpu_warning_threshold: 0.7,
            cpu_critical_threshold: 0.9,
            memory_warning_threshold: 0.8,
            memory_critical_threshold: 0.95,
            response_time_warning_ms: 1000,
            response_time_critical_ms: 5000,
        }
    }
}